/*
 * Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.love.cloud.admin.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.love.cloud.common.mybatis.entity.SimpleBaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.LocalDateTime;

/**
 * @author hongdongqu
 */
@Data
@Entity
@Table(name = "sys_user")
@TableName("sys_user")
@EqualsAndHashCode(callSuper = false)
@org.hibernate.annotations.Table(appliesTo = "sys_user",comment="系统用户")
public class SysUser extends SimpleBaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 用户名(登录名)
	 */
	@Column(columnDefinition = "varchar(80) COMMENT '登录名'")
	private String username;

	/**
	 * 密码(密文)
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '密码(密文)'")
	private String password;

	/**
	 * 父节点表示符
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '父节点表示符'")
	private String pid;

	/**
	 * 类型
	 */
	@ApiModelProperty(value = "类型")
	@Column(columnDefinition = "varchar(80) COMMENT '类型'")
	private String type;

	/**
	 * 真实姓名/昵称
	 */
	@Column(columnDefinition = "varchar(80) COMMENT '真实姓名/昵称'")
	private String name;
	/**
	 * 用户照片
	 */
	@Column(columnDefinition = "longtext COMMENT '用户照片(base64存储)'")
	private String avatar;

	/**
	 * 用户照片
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '浙政钉头像id'")
	private String zDingAvatarId;

	/**
	 * 性别 1男 0女
	 */
	@Column(columnDefinition = "varchar(10) COMMENT '性别 1男 0女'")
	private String sex;
	/**
	 * 用户状态 默认 0:启用； 1：锁定
	 */
	@Column(columnDefinition = "varchar(10) COMMENT '用户状态 默认 0:启用； 1：锁定'")
	private String status;
	/**
	 * 职位
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '职位'")
	private String position;
	/**
	 * 手机号
	 */
	@Column(columnDefinition = "varchar(20) COMMENT '手机号'")
	private String mobile;
	/**
	 * 手机短号
	 */
	@Column(columnDefinition = "varchar(20) COMMENT '手机短号'")
	private String shortMobile;
	/**
	 * 办公电话
	 */
	@Column(columnDefinition = "varchar(20) COMMENT '办公电话'")
	private String telephone;
	/**
	 * 身份证
	 */
	@Column(columnDefinition = "varchar(30) COMMENT '身份证'")
	private String sfz;
	/**
	 * 手机序列号
	 */
	@Column(columnDefinition = "varchar(30) COMMENT '手机序列号'")
	private String mobileCode;
	/**
	 * 是否在通信录显示 默认 1：显示； 0：不显示
	 */
	@Column(columnDefinition = "varchar(10) COMMENT '是否在通信录显示 默认 1：显示； 0：不显示' default '1'")
	private String contact;
	/**
	 * 备注
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '备注'")
	private String note;
	/**
	 * ip
	 */
	@Column(columnDefinition = "varchar(255) COMMENT 'ip'")
	private String ip;
	/**
	 * 钉钉id
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '钉钉id'")
	private String dingTalkId;

	/**
	 * 浙政钉员工id
	 */
	@Column(columnDefinition = "varchar(64) COMMENT '浙政钉员工id'")
	private String zDingEmployeeCode;

	/**
	 * 浙政钉账号id
	 */
	@Column(columnDefinition = "varchar(32) COMMENT '浙政钉账号id'")
	private String zDingAccountId;

	/**
	 * 来源 标识是本地还是来自钉钉同步过来的， 默认本地。 1：本地； 0：钉钉
	 */
	@Column(columnDefinition = "varchar(10) COMMENT '来源 标识是本地还是来自钉钉同步过来的， 默认本地。 1：本地； 0：钉钉' default '1'")
	private String source;
	/**
	 * 简拼
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '简拼'")
	private String firstSpell;
	/**
	 * 全拼
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '全拼'")
	private String spell;
	/**
	 * 提示修改密码标识 1 提示；0 不提示
	 */
	@Column(columnDefinition = "varchar(10) COMMENT '提示修改密码标识 1 提示；0 不提示'")
	private String notice;
	/**
	 * 关联数据名称，逗号分隔
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '关联数据名称，逗号分隔'")
	private String relationNames;
	/**
	 * 关联数据id集合，逗号分隔
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '关联数据id集合，逗号分隔'")
	private String relationIds;
	/**
	 * 联络主任关联数据名称，逗号分隔
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '联络主任关联数据名称，逗号分隔'")
	private String liaisonOfficerNames;
	/**
	 * 联络主任关联数据id集合，逗号分隔
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '联络主任关联数据id集合，逗号分隔'")
	private String liaisonOfficerIds;
	/**
	 * 云签章Code
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '云签章Code'")
	private String sealCode;
	/**
	 * 钉钉同步过来的照片存放路径
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '钉钉同步过来的照片存放路径'")
	private String dingPhoto;
	/**
	 * 人员的出生年月
	 */
	@Column(columnDefinition = "DATETIME(6) COMMENT '人员的出生年月'")
	private LocalDateTime birthday;

	/**
	 * 虚拟网
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '虚拟网'")
	private String virtualNetwork;

	/**
	 * 备用电话
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '备用电话'")
	private String backupPhone;

	/**
	 * 办公传真
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '办公传真'")
	private String officeFax;

	/**
	 * 家庭电话
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '家庭电话'")
	private String homePhone;

	/**
	 * 电子邮件
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '电子邮件'")
	private String eMail;

	/**
	 * 联系地址
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '联系地址'")
	private String contactAddress;
	/**
	 * 职级
	 */
	@Column(columnDefinition = "varchar(32) COMMENT '职级'")
	private String empJobLevelCode;
	/**
	 * 人员编制Code
	 */
	@Column(columnDefinition = "varchar(180) COMMENT '人员编制Code'")
	private String empBudgetedPostCode;

	/**
	 * 信任ip开关 1：开 2：关
	 */
	@Column(columnDefinition = "varchar(10) COMMENT '信任ip开关 1：开 2：关'")
	private String ipSwitch;

	/**
	 * 受信任ip
	 */
	@Column(columnDefinition = "varchar(80) COMMENT '受信任ip'")
	private String ipTrust;

	/**
	 * 用户自定义模块
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '用户自定义模块'")
	private String extModules;

	/**
	 * 用户自定义父模块排序
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '用户自定义父模块排序'")
	private String extSortParent;

	/**
	 * 用户自定义子模块排序
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '用户自定义子模块排序'")
	private String extSortChild;

	/**
	 *  unionid是微信用户在同一个开放平台下的产品的身份ID
	 */
	@Column(columnDefinition = "varchar(255) COMMENT 'unionid是微信用户在同一个开放平台下的产品的身份ID'")
	private String wxUnionId;

	/**
	 * 微信小程序openCode
	 */
	@Column(columnDefinition = "varchar(255) COMMENT '微信小程序openCode'")
	private String miniappOpenCode;

	/**
	 * 排序字段
	 */
	@Column(columnDefinition = "int COMMENT '排序字段'")
	private Integer sort;
}
